package com.wx.utils;

import org.springframework.util.CollectionUtils;

import java.util.ArrayList;
import java.util.List;


public class PageUtil {
	
	/**
	 * 通过页码和每页条数计算出总页数
	 * @param totalNo   总条数
	 * @param pageSize  每页大小
	 * @return int
	 */
	public static int getTotalPage(int totalNo,int pageSize) {
		int totalPage = totalNo / pageSize;
		if (totalNo % pageSize != 0) {
			totalPage += 1;
		}
		return totalPage;
	}
	
	/**
	 * 通过页码和每页条数计算出起始位置
	 * @param pageNo   页数
	 * @param pageSize 每页大小
	 * @return int
	 */
	public static int getPageBeginPos(int pageNo,int pageSize) {
		int pageBeginPos = (pageNo - 1) * pageSize;
		return pageBeginPos;
	}
	
	/**
	 * 根据参数手动分页
	 * @author wangzhiqiang01@meicai.cn
	 * 2017年9月14日
	 * @param list List
	 * @param pageNo int
	 * @param pageSize int
	 * @return List
	 */
    public static <T> List<T> getPageListByParam(List<T> list, int pageNo, int pageSize) {
        List<T> subList = new ArrayList<>();
        if(CollectionUtils.isEmpty(list)){
            return subList;
        }
        int pageBegin = PageUtil.getPageBeginPos(pageNo, pageSize);
        int pageEnd = pageBegin + pageSize;
        int totalNo = list.size();
        if(totalNo > pageEnd){
            subList = list.subList(pageBegin, pageEnd);
        } else {
            subList = list.subList(pageBegin, totalNo); 
        }
        return subList;
    }

}
